export const systemConfig = {
  // 性能优化
  performance: {
    // 服务器优化
    server: {
      cluster: {
        enabled: true,
        workers: 'auto', // 自动根据CPU核心数设置
        maxWorkers: 4, // 最大工作进程数
      },
      memory: {
        maxHeapSize: '2048m', // 最大堆内存
        gcInterval: 3600, // GC间隔(秒)
      },
    },

    // 网络优化
    network: {
      compression: {
        enabled: true,
        threshold: 1024, // 压缩阈值(字节)
        level: 6, // 压缩级别(1-9)
      },
      timeout: {
        request: 30000, // 请求超时(ms)
        socket: 60000, // Socket超时(ms)
      },
    },
  },

  // 缓存配置
  cache: {
    // Redis缓存
    redis: {
      enabled: true,
      host: 'localhost',
      port: 6379,
      password: process.env.REDIS_PASSWORD,
      db: 0,
      // 缓存策略
      policy: {
        user: {
          ttl: 3600, // 用户信息缓存1小时
          maxSize: 100000, // 最大缓存数量
        },
        room: {
          ttl: 1800, // 房间信息缓存30分钟
          maxSize: 10000,
        },
        gift: {
          ttl: 86400, // 礼物配置缓存1天
          maxSize: 1000,
        },
      },
    },

    // 本地缓存
    local: {
      enabled: true,
      path: 'D:\\livechat\\cache',
      // 静态资源缓存
      static: {
        enabled: true,
        maxAge: 86400, // 缓存1天
        extensions: ['.js', '.css', '.png', '.jpg', '.gif'],
      },
      // 临时文件缓存
      temp: {
        enabled: true,
        maxSize: '1GB',
        cleanInterval: 3600, // 清理间隔(秒)
      },
    },
  },

  // CDN配置
  cdn: {
    enabled: true,
    // 阿里云CDN
    aliyun: {
      enabled: true,
      domain: 'cdn.example.com',
      accessKeyId: process.env.ALIYUN_ACCESS_KEY_ID,
      accessKeySecret: process.env.ALIYUN_ACCESS_KEY_SECRET,
      // 刷新配置
      refresh: {
        enabled: true,
        urls: ['/*.html', '/*.js', '/*.css'],
        interval: 3600, // 刷新间隔(秒)
      },
    },
    // 腾讯云CDN
    tencent: {
      enabled: false,
      domain: 'cdn2.example.com',
      secretId: process.env.TENCENT_SECRET_ID,
      secretKey: process.env.TENCENT_SECRET_KEY,
    },
  },

  // 文件存储
  storage: {
    // 本地存储
    local: {
      enabled: true,
      path: 'D:\\livechat\\storage',
      // 目录结构
      dirs: {
        upload: 'uploads',
        temp: 'temp',
        backup: 'backups',
      },
      // 清理策略
      cleanup: {
        enabled: true,
        schedule: '0 3 * * *', // 每天凌晨3点
        expires: {
          temp: 86400, // 临时文件1天
          logs: 604800, // 日志7天
          backups: 2592000, // 备份30天
        },
      },
    },

    // 对象存储
    oss: {
      enabled: true,
      type: 'aliyun', // 使用阿里云OSS
      bucket: 'livechat-storage',
      region: 'oss-cn-hangzhou',
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      // 目录配置
      dirs: {
        public: 'public',
        private: 'private',
        temp: 'temp',
      },
    },
  },
}
